#ifndef SYSTEMICONPROVIDER_H
#define SYSTEMICONPROVIDER_H

#include <QObject>
#include <QString>
#include <QIcon>

class SystemIconProvider : public QObject
{
    Q_OBJECT

public:
    explicit SystemIconProvider(QObject *parent = nullptr);

    // 获取文件图标路径（返回文件类型标识，如 "txt", "doc" 等）
    Q_INVOKABLE QString getFileIconPath(const QString &filePath);

    // 获取文件图标资源路径（返回 qrc 路径）
    Q_INVOKABLE QString getFileIconSource(const QString &filePath);

    // 获取文件图标（返回 QIcon 对象）
    Q_INVOKABLE QIcon getFileIcon(const QString &filePath);

    // 获取文件类型描述
    Q_INVOKABLE QString getFileTypeDescription(const QString &filePath);

    // 根据文件类型获取图标路径
    Q_INVOKABLE QString getFileTypeIcon(const QString &fileType);

private:
    // 获取图标资源路径（内部方法）
    QString getIconResourcePath(const QString &fileType);
};

#endif // SYSTEMICONPROVIDER_H

